<?php

App::uses('Shell', 'Console');
App::uses('TestEnvironment', 'Lib');
App::uses('FileSystem', 'Base.Lib');

class TestEnvironmentShell extends AppShell {

    /**
     * get the option parser.
     *
     * @return void
     */
    public function getOptionParser() {
        $parser = parent::getOptionParser();
        $parser->description('Cria uma cópia do ambiente de arquivos.');
        $parser->addOptions(array(
            'apply' => array(
                'default' => false,
                'boolean' => true,
                'help' => __('Aplica a cópia do ambiente')
            )
            , 'clear' => array(
                'default' => false,
                'boolean' => true,
                'help' => __('Remove os arquivos contidos no diretório algo antes ')
            )
        ));

        $parser->addArgument(
            'target-directory', array(
            'required' => false,
            'help' => __('Diretório onde será criada a cópia do ambiente.'),
            )
        );
        return $parser;
    }

    public function main() {        

        $targetDirectory = empty($this->args[0]) ?
			FileSystem::createTemporaryDirectory() :
			$this->args[0];

        $env = new TestEnvironment($targetDirectory, $this->params['clear']);
        if ($this->params['apply']) {
            $env->apply();
        }
    }

}